package org.example.task.model.po;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.example.task.enums.TaskPriority;
import org.example.task.enums.TaskStatus;

import java.io.Serializable;
import java.time.LocalDateTime;


@Data
public class Task implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId
    private Long taskId;

    /**
     * 任务标题
     */
    private String title;

    /**
     * 任务描述
     */
    private String description;

    /**
     * 创建者ID（关联用户表）
     */
    private Long creatorId;
    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /**
     * 截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime dueDate;

    /**
     * 优先级（0：低，1：中，2：高）
     */
    private TaskPriority priority;

    /**
     * 任务状态(0：未开始，1：进行中，2：已完成，3：已延期)
     */
    private TaskStatus status;

    /**
     * 附件路径
     */
    private String attachment;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    @TableLogic
    private Integer isDeleted;


}
